--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tests/backend/test_announce_dao_trim.py e8e5128bc67cd3e8540bcd9f4e9be1b8d43db36a (e8e5128b) Text, 1.82 KB
Tff7b72import T7ee787os
Tff7b72import T7ee787tempfile
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787database Tff7b72import Te6edf3Database
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787databaseT7ee787.T7ee787provider Tff7b72import Te6edf3DatabaseProvider
Tff7b72def Td2a8ff_insertTb4b4b4(Te6edf3dbTb4b4b4, Te6edf3dest_hexTb4b4b4, Te6edf3aspectTb4b4b4, Te6edf3updated_orderTb4b4b4)Tb4b4b4:
Te6edf3dbTff7b72.Td2a8ffannouncesTff7b72.Td2a8ffupsert_announceTb4b4b4(
Tb4b4b4{
Ta5d6ff"Ta5d6ffdestination_hashTa5d6ff"Tb4b4b4: Te6edf3dest_hexTb4b4b4,
Ta5d6ff"Ta5d6ffaspectTa5d6ff"Tb4b4b4: Te6edf3aspectTb4b4b4,
Ta5d6ff"Ta5d6ffidentity_hashTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffaTa5d6ff" Tff7b72* T79c0ff32Tb4b4b4,
Ta5d6ff"Ta5d6ffidentity_public_keyTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffcHVibmtleQ==Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffapp_dataTa5d6ff"Tb4b4b4: Tff7b72NoneTb4b4b4,
Ta5d6ff"Ta5d6ffrssiTa5d6ff"Tb4b4b4: Tff7b72NoneTb4b4b4,
Ta5d6ff"Ta5d6ffsnrTa5d6ff"Tb4b4b4: Tff7b72NoneTb4b4b4,
Ta5d6ff"Ta5d6ffqualityTa5d6ff"Tb4b4b4: Tff7b72NoneTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Te6edf3dbTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6ff"Ta5d6ffUPDATE announces SET updated_at = ? WHERE destination_hash = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3updated_orderTb4b4b4, Te6edf3dest_hexTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8fftest_trim_announces_for_aspect_drops_oldestTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3path Tff7b72= Tff7b72None
Te6edf3db Tff7b72= Tff7b72None
Tff7b72tryTb4b4b4:
Tff7b72with Te6edf3tempfileTff7b72.Td2a8ffNamedTemporaryFileTb4b4b4(Te6edf3suffixTff7b72=Ta5d6ff"Ta5d6ff.dbTa5d6ff"Tb4b4b4, Te6edf3deleteTff7b72=Tff7b72FalseTb4b4b4) Tff7b72as Te6edf3fTb4b4b4:
Te6edf3path Tff7b72= Te6edf3fTff7b72.Td2a8ffname
Te6edf3db Tff7b72= Te6edf3DatabaseTb4b4b4(Te6edf3pathTb4b4b4)
Te6edf3dbTff7b72.Td2a8ffinitializeTb4b4b4(Tb4b4b4)
Te6edf3aspect Tff7b72= Ta5d6ff"Ta5d6fflxmf.deliveryTa5d6ff"
Te6edf3_insertTb4b4b4(Te6edf3dbTb4b4b4, Ta5d6ff"Ta5d6ff01Ta5d6ff" Tff7b72* T79c0ff16Tb4b4b4, Te6edf3aspectTb4b4b4, Ta5d6ff"Ta5d6ff2000-01-01T00:00:00ZTa5d6ff"Tb4b4b4)
Te6edf3_insertTb4b4b4(Te6edf3dbTb4b4b4, Ta5d6ff"Ta5d6ff02Ta5d6ff" Tff7b72* T79c0ff16Tb4b4b4, Te6edf3aspectTb4b4b4, Ta5d6ff"Ta5d6ff2000-01-02T00:00:00ZTa5d6ff"Tb4b4b4)
Te6edf3_insertTb4b4b4(Te6edf3dbTb4b4b4, Ta5d6ff"Ta5d6ff03Ta5d6ff" Tff7b72* T79c0ff16Tb4b4b4, Te6edf3aspectTb4b4b4, Ta5d6ff"Ta5d6ff2000-01-03T00:00:00ZTa5d6ff"Tb4b4b4)
Te6edf3dbTff7b72.Td2a8ffannouncesTff7b72.Td2a8fftrim_announces_for_aspectTb4b4b4(Te6edf3aspectTb4b4b4, T79c0ff2Tb4b4b4)
Te6edf3rows Tff7b72= Te6edf3dbTff7b72.Td2a8ffannouncesTff7b72.Td2a8ffget_announcesTb4b4b4(Te6edf3aspectTff7b72=Te6edf3aspectTb4b4b4)
Te6edf3hashes Tff7b72= Tb4b4b4{Te6edf3rTb4b4b4[Ta5d6ff"Ta5d6ffdestination_hashTa5d6ff"Tb4b4b4] Tff7b72for Te6edf3r Tff7b72in Te6edf3rowsTb4b4b4}
Tff7b72assert Te6edf3hashes Tff7b72== Tb4b4b4{Ta5d6ff"Ta5d6ff03Ta5d6ff" Tff7b72* T79c0ff16Tb4b4b4, Ta5d6ff"Ta5d6ff02Ta5d6ff" Tff7b72* T79c0ff16Tb4b4b4}
Tff7b72finallyTb4b4b4:
Tff7b72if Te6edf3db Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3dbTff7b72.Td2a8ffcloseTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass
Te6edf3DatabaseProviderTff7b72.Td2a8ff_instance Tff7b72= Tff7b72None
Tff7b72if Te6edf3pathTb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3osTff7b72.Td2a8ffunlinkTb4b4b4(Te6edf3pathTb4b4b4)
Tff7b72except Tf85149OSErrorTb4b4b4:
Tff7b72pass
Tff7b72for Te6edf3suffix Tff7b72in Tb4b4b4(Ta5d6ff"Ta5d6ff-walTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff-shmTa5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3osTff7b72.Td2a8ffunlinkTb4b4b4(Te6edf3path Tff7b72+ Te6edf3suffixTb4b4b4)
Tff7b72except Tf85149OSErrorTb4b4b4:
Tff7b72pass
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────